home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / PASCAL / 0193.ZIP / TADPC.INC < prev    next >
Text File  |  1985-02-23  |  2KB  |  76 lines

  1. procedure Get_Sys_Time(var t: tad_array);
  2. { Get system time - for IBM PC }
  3. type
  4.   regpack = record
  5.     ax, bx, cx, dx, bp, si, di, ds, es, flags: integer;
  6.   end;
  7. var
  8.   allregs: regpack;
  9. begin { Get_Sys_Time }
  10.   with allregs do
  11.     begin
  12.       ax := $2C * 256;
  13.       MsDos(allregs);
  14.       t[0] := dx div 256;
  15.       t[1] := cx mod 256;
  16.       t[2] := cx div 256
  17.     end
  18. end;
  19.  
  20. procedure Get_Sys_Date(var t: tad_array);
  21. { Get system date - for IBM PC }
  22. type
  23.   regpack = record
  24.     ax, bx, cx, dx, bp, si, di, ds, es, flags: integer;
  25.   end;
  26. var
  27.   allregs: regpack;
  28. begin { Get_Sys_Date }
  29.   with allregs do
  30.     begin
  31.       ax := $2A * 256;
  32.       MsDos(allregs);
  33.       t[0] := dx mod 256;
  34.       t[1] := dx div 256;
  35.       t[2] := cx - 1900
  36.     end
  37. end;
  38.  
  39. procedure Get_Cre_Date(var t: tad_array; var infile: text);
  40. { Get file creation date - for IBM PC }
  41. { Retrieved from the FIB which corresponds to bytes 20-21 of the FCB.
  42.   Format:   bits 0 - 4: day of month
  43.                  5 - 8: month of year
  44.                  9 -15: year - 1980
  45. }
  46. const
  47.   monthmask  = $000F;
  48.   daymask    = $001F;
  49. var
  50.   fulldate: integer;
  51. begin
  52.   fulldate := memw[seg(infile):ofs(infile) + 31];
  53.   t[0] := fulldate and daymask;
  54.   t[1] := (fulldate shr 5) and monthmask;
  55.   t[2] := (fulldate shr 9) + 80;
  56. end;
  57.  
  58. procedure Get_Cre_Time(var t: tad_array; var infile: text);
  59. { Get file creation time - for IBM PC }
  60. { Retrieved from the FIB which corresponds to bytes 22-23 of the FCB.
  61.   Format:   bits 0 - 4: seconds/2
  62.                  5 -10: minutes
  63.                  11-15: hours
  64. }
  65. const
  66.   minutemask = $003F;
  67.   secondmask = $001F;
  68. var
  69.   fulltime: integer;
  70. begin
  71.   fulltime := memw[seg(infile):ofs(infile) + 33];
  72.   t[0] := (fulltime and secondmask) * 2;
  73.   t[1] := (fulltime shr 5) and minutemask;
  74.   t[2] := fulltime shr 11;
  75. end;
  76.